.ds V 1.32
.de M
.BR "\\$1" "(\\$2)\\$3"
..
.TH T1DISASM 1  "" "Version \*V"
.SH NAME
t1disasm \- disassemble PostScript Type 1 font
.SH SYNOPSIS
.B t1disasm
\%[\fIinput\fR [\fIoutput\fR]]
.SH DESCRIPTION
.B t1disasm
disassembles Adobe Type 1 font programs in either PFA (hexadecimal) or PFB
(binary) formats into human-readable form. If the file
.I output
is not specified output goes to the standard output.
If the file
.I input
is not specified input comes from the standard input.

.B t1disasm
performs eexec and charstring decryption as specified in the ``black
book'',
.I "Adobe Type 1 Font Format."
Additionally, the charstring binary tokens are expanded into human-readable
text form, using the names given in the black book and later documents
describing Type 2 opcodes.
.SH EXAMPLES
.LP
.nf
% t1disasm Utopia-Regular.pfb Utopia-Regular.raw
% t1disasm Utopia-Regular.pfa Utopia-Regular.raw
.fi

In
.B Subrs
entries in Utopia-Regular.raw will look like
.RS
.nf
.ft B
dup 5 {
        8 111 vstem
        -12 128 hstem
        707 -20 hstem
        return
        } |
.ft R
.fi
.RE
and the
.B CharStrings
entries like
.RS
.nf
.ft B
/exclam {
        58 242 hsbw
        6 callsubr
        5 4 callsubr
        63 707 rmoveto
        -54 0 -5 -22 4 -45 rrcurveto
        40 -431 rlineto
        29 hlineto
        42 431 rlineto
        4 45 -5 22 -55 0 rrcurveto
        closepath
        6 4 callsubr
        -719 vmoveto
        243 callsubr
        endchar
        } |-
.ft R
.fi
.RE
.SH "SEE ALSO"
.LP
.M t1asm 1 ,
.M t1ascii 1 ,
.M t1binary 1 ,
.M t1unmac 1 ,
.M t1mac 1
.LP
.I "Adobe Type 1 Font Format"
is available free from Adobe as a PDF file:
http://partners.adobe.com/asn/developer/PDFS/TN/T1_SPEC.PDF
.LP
.I "The Type 2 Charstring Format,"
also available from Adobe as a PDF file, describes the newer Type 2
operators, which are also used in some multiple-master Type 1 fonts like
Adobe Jenson and Kepler:
http://partners.adobe.com/asn/developer/PDFS/TN/5177.Type2.pdf
'
.SH AUTHORS
Lee Hetherington (ilh@lcs.mit.edu)
.br
Eddie Kohler (kohler@icir.org)
